import React, { useEffect, useRef } from 'react';
import * as echarts from 'echarts';

const Czttj = () => {
  const chartRef = useRef(null);

  useEffect(() => {
    let myChart = null;

    const renderChart = () => {
      myChart = echarts.init(chartRef.current);
      const option = {
        legend: {},
    tooltip: {
      trigger: 'axis',
      showContent: false
    },
    dataset: {
      source: [
        ['product', '2018', '2019', '2020', '2021', '2022', '2023'],
        ['交通要素承灾体数量', 56.5, 82.1, 88.7, 70.1, 53.4, 85.1],
        ['建筑要素承灾体数量', 51.1, 51.4, 55.1, 53.3, 73.8, 68.7],
        ['安全生产要素承灾体数量', 40.1, 62.2, 69.5, 36.4, 45.2, 32.5],
        ['专用承灾体数量', 25.2, 37.1, 41.2, 18, 33.9, 49.1]
      ]
    },
    xAxis: { type: 'category' },
    yAxis: { gridIndex: 0 },
    grid: { top: '55%' },
    series: [
      {
        type: 'line',
        smooth: true,
        seriesLayoutBy: 'row',
        emphasis: { focus: 'series' }
      },
      {
        type: 'line',
        smooth: true,
        seriesLayoutBy: 'row',
        emphasis: { focus: 'series' }
      },
      {
        type: 'line',
        smooth: true,
        seriesLayoutBy: 'row',
        emphasis: { focus: 'series' }
      },
      {
        type: 'line',
        smooth: true,
        seriesLayoutBy: 'row',
        emphasis: { focus: 'series' }
      },
      {
        type: 'pie',
        id: 'pie',
        radius: '30%',
        center: ['50%', '25%'],
        emphasis: {
          focus: 'self'
        },
        label: {
          formatter: '{b}: {@2018} ({d}%)'
        },
        encode: {
          itemName: 'product',
          value: '2018',
          tooltip: '2018'
        }
      }
    ]
  };
  myChart.on('updateAxisPointer', function (event) {
    const xAxisInfo = event.axesInfo[0];
    if (xAxisInfo) {
      const dimension = xAxisInfo.value + 1;
      myChart.setOption({
        series: {
          id: 'pie',
          label: {
            formatter: '{b}: {@[' + dimension + ']} ({d}%)'
          },
          encode: {
            value: dimension,
            tooltip: dimension
          }
        }
      });
    }
  });
      myChart.setOption(option);
    };

    setTimeout(renderChart, 0);

    return () => {
      if (myChart) {
        myChart.dispose();
      }
    };
  }, []);

  return <div ref={chartRef} style={{ width: '100%', height: '95%' ,
marginTop:10,
marginLeft:10}}></div>;
};

export default Czttj;